package com.example.roadeyeserver.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.roadeyeserver.entity.StationHourFlowWide;
import com.example.roadeyeserver.entity.report.CrossOverviewReport;
import com.example.roadeyeserver.entity.report.CrossStationStatisticReport;
import com.example.roadeyeserver.entity.report.StationRankReport;
import com.example.roadeyeserver.entity.request.CommonRequest;
import com.example.roadeyeserver.entity.request.CrossStationStatisticRequest;
import com.example.roadeyeserver.entity.vo.StationHourFlowWideVO;
import com.example.roadeyeserver.result.Result;

import java.util.List;

public interface StationHourFlowWideService extends IService<StationHourFlowWide> {

    /**
     * 收费站流量-收费站流量总览
     * @param request
     * @return
     */
    Result<CrossOverviewReport> getStationOverviewReport(CommonRequest request);

    /**
     * 收费站流量-收费站流量排名
     * @param request
     * @return
     */
    Result<List<StationRankReport>> getStationRankReport(CommonRequest request);

    /**
     * 跨收费站-收费站流量统计(车型和方向两个类型)(车型只分大车型)
     * @param request
     * @return
     */
    Result<List<CrossStationStatisticReport>> getCrossStationStatisticReport(CrossStationStatisticRequest request);

    /**
     * 收费站流量-获取收费站流量聚合,分车型(精确到小车型)饼图
     * @param request
     * @return
     */
    Result<StationHourFlowWideVO> getStationHourFlowList(CrossStationStatisticRequest request);

    /**
     * 收费站流量-路段流量具体车型号细分统计(精确到小车型)柱状图和折线图
     * @param request
     * @return
     */
    Result<List<StationHourFlowWideVO>> getStationCarReport(CrossStationStatisticRequest request);

    /**
     * 收费站流量、路段流量-地图撒点
     * @param request
     * @return
     */
    Result<List<CrossStationStatisticReport>> getStationFlowReport(CommonRequest request);
}
